In many electronics applications, a data is carried from a transmitter to a receiver over a bus or other type of channel. For example, a serializer/deserializer (SERDES) circuit can compress a relatively wide, parallel input into a relatively narrow, serial signal (e.g., a single “bit,” differential signal) for communication over a serial bus. The serial bus switches at an appreciably higher rate than the parallel bus, and serial communication of the data stream tends to reduce cost, complexity, power, and board real estate relative to comparable parallel communications. As bus speeds increase, parallel communications manifest even higher power consumption and more issues relating to timing (e.g., skew mismatches and bit misalignment), making SERDES circuits even more attractive.
Signals sent over the channel can be sampled at the receiver to recover the transmitted data. Often, even if the data speed is known and appropriate clock frequencies are set at the transmitter and receiver sides, the transmitter and receiver can use separate clock circuits (i.e., there is asynchronous clocking). Because each clock frequency can deviate from its nominal center frequency (e.g., due to differences between crystal oscillators, manufacturing variances, etc.), there can be an offset between the transmit and receive clock frequencies. If not corrected at the receiver, the frequency offset can cause sampling timing errors, which can result in data recovery errors.
A clock data recovery (CDR) circuit can be used to recover an appropriate clocking signal from the data itself. For example, a CDR can often optimize sample clock timing, even in the presence of some amount of clock jitter, noisy data, small signal levels, and/or other difficult conditions. However, in some instances, the clock recovery conditions can frustrate CDR operations. For example, when the frequency offset between the transmitter-side and receiver-side clocks is too large, the CDR may be unable to properly adjust the receiver-side clock to compensate for that offset.